package com.bwie.coupon.mapper;

import com.bwie.coupon.domain.dto.CouponExpiredDTO;
import com.bwie.coupon.domain.dto.CouponMerchantListDTO;
import com.bwie.coupon.domain.dto.MerchantAddCouponDTO;
import com.bwie.coupon.domain.po.MerchantCouponPo;
import com.bwie.coupon.domain.po.SelectSkuPo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CouponMerchantMapper {
    /**
     * 商家分页条件查询优惠券
     *
     * @param couponMerchantListDTO
     * @param userid
     * @return
     */
    List<MerchantCouponPo> getMerchantCouponList(@Param("couponMerchantListDTO") CouponMerchantListDTO couponMerchantListDTO, @Param("userId") Long userid);

    /**
     * 根据优惠券id查询优惠券
     * @param id
     * @return
     */
    MerchantCouponPo getCouponById(Long id);

    /**
     * 商家管理优惠券状态
     * @param couponExpiredDTO
     */
    void couponExpired(CouponExpiredDTO couponExpiredDTO);

    /**
     * 商家删除优惠券
     * @param id
     * @return
     */
    Integer delCoupon(Long id);

    /**
     * 商家查询选择商品优惠券选中的商品
     * @param id
     * @return
     */
    List<SelectSkuPo> getSelectSkuPoByCouponId(Long id);

    /**
     * 根据优惠券id获得优惠方式
     * @param id
     * @return
     */
    Integer getPreferentialTypeByCouponId(Integer id);

    /**
     * 添加优惠券优惠类型
     * @param merchantAddCoupon
     */
    void addCouponType(MerchantAddCouponDTO merchantAddCoupon);

    /**
     * 商家添加优惠券
     * @param merchantAddCoupon
     */
    void addCoupon(MerchantAddCouponDTO merchantAddCoupon);

    /**
     * 添加优惠券sku中间表
     *
     * @param id
     * @param couponAstrictNumber
     * @param skuId
     */
    void addCouponSku(@Param("id") Long id,@Param("num") Integer couponAstrictNumber,@Param("skuId") Long skuId);
}
